package algorithm;

/**
 * @Author wangtengyu
 * @Create 2018-03-22-10:09
 */
public class BubbleSort {
    public static int[] sort(int array[]){
        //最少需比较数组长度减一次 每次排序完 最大值在最大索引处
        for(int i=1;i<array.length;i++){
            //可能排序到第几次的时候顺序就已经是由小到大的了 这样就不需要再排序了
            boolean flag=true;
            for (int j=0;j<array.length-i;j++){
                if(array[j]>array[j+1]){
                    int temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                    flag=false;
                }
            }
            if(flag){
                break;
            }
            System.out.print("第"+i+"轮排序的结果为");
            display(array);
        }
        return array;
    }


    public static void display(int array[]){
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]+" ");
        }
        System.out.println();
    }


    public static void main(String[] args) {
        //int array[]={2,1,4,3,6,5,8,7};
        int array[]={4,2,8,9,5,7,6,1,3};
        System.out.print("未排序数组顺序为");
        display(array);
        sort(array);
        System.out.print("排序后数组顺序为");
        display(array);
    }


}
